1 REM ******************************* 2 REM * REFORMAT V4.0 * 3 REM * * 4 REM * (C) 1985 BY GEORG BURGER * 5 REM * ROIDERSTRASSE 18 * 6 REM * 8051 ZOLLING * 7 REM ******************************* 8 : 9 : 10 POKE53280,0:POKE53281,0:POKE646,5:PRINTCHR$(142) 20 OPEN1,8,15,"I":CLOSE1:GOTO1000 97 : 98 REM ---------ROUTINEN-------------- 99 : 100 CLOSE5:OPEN5,8,5,"#2":RETURN 200 INPUT#15,Y1$,Y2$,Y3$,Y4$ 210 IFVAL(Y1$)=0THENRETURN 220 PRINT""Y1$" "Y2$" "Y3$" "Y4$ 230 PRINT" USE  _ [146] TO EXIT OR  F7 [146] TO CONTINUE" 240 POKE198,0 250 GETA$:IFA$=""THEN250 260 IFA$="_"THENRUN 270 IFASC(A$)=136THENRETURN 280 GOTO250 300 PRINT"[147][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]"; 310 PRINT" REFORMAT V4.0 BY GEORG BURGER [146]"; 320 FORI=1TO7:PRINT"[165] [167]";:NEXTI 330 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]":RETURN 400 PRINT"OLD DIRECTORY-REGISTER:":PRINT 410 PRINT"NAME",DN$(D1) 420 PRINT"BLOCKS",DL(D1) 430 PRINT"TRACK",DS(D1) 440 PRINT"SECTOR",DB(D1) 450 EF$="Y":RETURN 500 PRINT"  PRESS ANY KEY [146]":POKE198,0 510 GETA$:IFA$=""THEN510 520 RETURN 600 D1=0 610 IF(DS(D1)=AS)AND(DB(D1)=AB)THEN400 620 D1=D1+1:IFD1>=DPTHENRETURN 630 GOTO610 700 MB=NB:NB=NB+3 710 IFNB=19THENNB=2 720 IFNB=20THENNB=3 730 RETURN 997 : 998 REM --------- MENUE --------------- 999 : 1000 OPEN15,8,15:OPEN5,8,5,"#2" 1010 DIMS(35,21),B(35,21),BL(35),DI$(29),DI(29),A$(255) 1020 DIMSV(35,21),BV(35,21),US(35,21),DS(144),DB(144),DL(144),DN$(144),DT(144) 1030 FORI=1TO17:BL(I)=20:NEXT:FORI=18TO24:BL(I)=18:NEXT 1040 FORI=25TO30:BL(I)=17:NEXT:FORI=31TO35:BL(I)=16:NEXT 1050 GOSUB300:POKE214,4:POKE211,0:SYS58640 1060 PRINT"  F1 [146] RECONSTRUCT DIRECTORY 1070 [153]"  F7 WAIT EXAMINE DIRECTORY":[151]198,0 1080 [161]A$:[139]A$[178]""[167]1080 1090 [139][198](A$)[178]133[167][141]100:[137]2000 1100 [139][198](A$)[178]136[167][141]100:[141]4000:[137]1050 1110 [137]1080 1997 : 1998 [143] --- RECONSTRUCT DIRECTORY ---- 1999 : 2000 [141]300:[151]214,4:[151]211,0:[158]58640 2010 [153]" RECONSTRUCT DIRECTORY 2020 PRINT" USE  _ [146] TO EXIT 2030 [153]"TOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTO"; 2040 [153]" TRACK SECTOR TO TRACK SECTOR WAIT" 2050 [129]S[178]1[164]35:[129]B[178]0[164]BL(S) 2060 [152]15,"B-R:"5;0;S;B:[141]200 2070 [152]15,"B-P:"5;0:[141]200 2080 [161]#5,E$ 2090 [161]#5,F$ 2100 E[178][198](E$[170][199](0)) 2110 F[178][198](F$[170][199](0)) 2120 [153]" "S,B," "E," "F 2130 [161]A$:[139]A$[178]""[167]2150 2140 [139]A$[178]"_"[167][160]15:[138] 2150 [139]E[178]75[175]F[178]1[167]US(S,B)[178][171]2:[137]2200 2160 [139]E[177]35[167]E[178]0 2170 [139]F[177]21[167]F[178]21 2180 S(S,B)[178]E:B(S,B)[178]F 2190 SV(E,F)[178]S:BV(E,F)[178]B:US(E,F)[178]US(E,F)[170]1 2200 [130]:[130] 2210 [143] ------ CRITICAL BLOCKS ------- 2220 [141]300:[151]214,5:[151]211,0:[158]58640 2230 [153]" CRITICAL BLOCKS 2240 PRINT" TRACK SECTOR LENGHT [146]":PRINT 2250 FORS=1TO35 2260 FORB=0TOBL(S) 2270 IFUS(S,B)<2THEN2290 2280 PRINT" "S,B,US(S,B) 2290 NEXT:NEXT 2300 PRINT"  END OF CRITICAL BLOCKS [146]" 2310 GOSUB500:GOSUB300:POKE214,4:POKE211,0:SYS58640 2320 PRINT" USE OLD DIRECTORY TO NAME FILES ? 2330 [153]" (Y/N) 2340 GETDA$:IFDA$=""THEN2340 2350 IFDA$<>"N"THENDA$="Y":GOSUB4030 2360 FORS=1TO35 2370 IFS=18THEN2550 2380 FORB=0TOBL(S) 2390 S1=S:B1=B 2400 IF(S=1)AND(S(S,B)=0)AND(B(S,B)=1)THEN2540 2410 IFUS(S1,B1)<0THEN2540 2420 IFUS(S1,B1)>0THENS2=SV(S1,B1):B2=BV(S1,B1):S1=S2:B1=B2:GOTO2420 2430 PRINT"[147][192][192][192][192][192][192][192][192][192][192][192][192][192][192] FILE-START [146][192][192][192][192][192][192][192][192][192][192][192][192][192][192]";:BA=1:AS=S1:AB=B1 2440 PRINTS1,B1:US(S1,B1)=-1 2450 S2=S(S1,B1):B2=B(S1,B1):S1=S2:B1=B2 2460 IFS1<>0THENBA=BA+1:GOTO2440 2470 PRINT"[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192] FILE-END [146][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]" 2475 PRINT"LENGHT:";BA;"BLOCKS":PRINT 2480 IFBA<2THEN2540 2490 IFDA$="Y"THENEF$="N":GOSUB600 2500 PRINT"WRITE BACK IN DIRECTORY (Y/N)":POKE198,0:PRINT 2510 GETE$:IFE$=""THEN2510 2520 IFE$="Y"THEN2570 2530 IFE$<>"N"THEN2510 2540 NEXTB 2550 NEXTS 2560 GOTO1050 2570 REM -------- WRITE BAM ----------- 2580 S1=AS:B1=AB 2590 PRINT#15,"B-A:"0;S1;B1:GOSUB200 2600 S2=S(S1,B1):B2=B(S1,B1):S1=S2:B1=B2 2610 IFS1<>0THEN2590 2620 REM ----- WRITE DIRECTORY -------- 2630 MB=1:NB=4 2640 PRINT#15,"U1:"5;0;18;MB:GOSUB200 2650 PRINT#15,"B-P:"5;0:GOSUB200 2660 GET#5,NS$,NB$ 2670 NS=ASC(NS$+CHR$(0)) 2680 IFNS<>0THENGOSUB700:GOTO2640 2690 C=0 2700 GET#5,A$,B$,C$ 2710 IFA$=""THENA$="0" 2720 IFB$=""THENB$="0" 2730 IFC$=""THENC$="0" 2740 IFA$="0"THENIFB$="0"THENIFC$="0"THEN2910 2750 FORI=1TO27:GET#5,A$:NEXT 2760 C=C+1:IFC<8THENGET#5,A$,A$:GOTO2700 2770 IFMB<18THEN2810 2780 PRINT"DIRECTORY IS FULL !" 2790 GETA$:IFA$=""THEN2790 2800 GOTO1050 2810 PRINT#15,"B-P:"5;0:GOSUB200 2820 PRINT#5,CHR$(18); 2830 PRINT#5,CHR$(NB); 2840 PRINT#15,"U2:"5;0;18;MB:GOSUB200 2850 GOSUB700 2860 PRINT#15,"U1:"5;0;18;MB:GOSUB200 2870 PRINT#15,"B-P:"5;0:GOSUB200 2880 PRINT#5,CHR$(0);CHR$(255);:FORI=0TO253:PRINT#5,CHR$(0);:NEXT 2890 PRINT#15,"U2:"5;0;18;MB:GOSUB200 2900 GOTO2640 2910 PRINT"TRACK 18 SECTOR"MB"POSITION"C+1:PRINT 2920 P=2+C*32 2930 PRINT#15,"B-P:"5;P:GOSUB200 2940 DI$(0)=CHR$(130) 2950 DI$(1)=CHR$(AS) 2960 DI$(2)=CHR$(AB) 2970 FORI=3TO18:DI$(I)=CHR$(160):NEXT 2980 IFDA$="Y"ANDEF$="Y"THENPRINT" "DN$(D1)"[145]" 2990 INPUT"NAME ";N$ 3000 N$=LEFT$(N$,16) 3010 FORI=0TOLEN(N$)-1 3020 DI$(3+I)=MID$(N$,I+1,1) 3030 NEXT 3040 FORI=19TO27:DI$(I)=CHR$(0):NEXT 3050 BH=INT(BA/256):BL=BA-256*BH 3060 DI$(28)=CHR$(BL) 3070 DI$(29)=CHR$(BH) 3080 FORI=0TO29 3090 PRINT#5,DI$(I); 3100 NEXT 3110 PRINT#15,"U2:"5;0;18;MB:GOSUB200 3120 GOTO2540 3997 : 3998 REM ---- EXAMINE DIRECTORY ------- 3999 : 4000 GOSUB300:POKE214,4:POKE211,0:SYS58640 4010 PRINT" EXAMINE DIRECTORY 4020 [153]" USE  _ WAIT TO EXIT 4030 PRINT 4040 MB=1:DP=0 4050 PRINT#15,"U1:"5;0;18;MB:GOSUB200 4060 PRINT#15,"B-P:"5;0:GOSUB200 4070 GET#5,NS$,NB$ 4080 NB=ASC(NB$+CHR$(0)) 4090 NS=ASC(NS$+CHR$(0)) 4100 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"; 4110 PRINT" TRACK 18 SECTOR"MB"-->"NS" "NB 4120 PRINT"[164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]"; 4130 GETA$:IFA$=""THEN4150 4140 IFA$="_"THENCLOSE15:RUN 4150 IFNS=75ANDNB=1THEN4440 4160 PRINT 4170 PRINT"BLOCKS"TAB(7)"NAME"TAB(26)"TYP"TAB(31)"TRA."TAB(36)"SEC.[146]" 4180 FORC=0TO7 4190 GETA$:IFA$=""THEN4210 4200 IFA$="_"THENCLOSE15:RUN 4210 FORI=0TO29 4220 GET#5,DI$(I) 4230 NEXTI 4240 IFC<>7THENGET#5,A$,A$ 4250 FORI=0TO29:DI(I)=ASC(DI$(I)+CHR$(0)):NEXT 4260 KW$=" NO MORE FILES IN SECTOR" 4270 IFDI(0)=0ANDDI(1)=0ANDDI(2)=0THENPRINT" "KW$;MB"[157] [146]":PRINT:GOTO4440 4280 DS(DP)=DI(1):DB(DP)=DI(2) 4290 DL(DP)=DI(29)*256+DI(28) 4300 DN$(DP)="":FORI=3TO18:IFDI(I)<>160THENDN$(DP)=DN$(DP)+DI$(I) 4310 NEXTI 4320 DT(DP)=DI(0) 4330 DP=DP+1 4340 PRINTDI(29)*256+DI(28);TAB(7);CHR$(34); 4350 FORI=3TO18:IFDI(I)<>160THENPRINTDI$(I); 4360 NEXT:PRINTCHR$(34); 4370 BY=DI(0)AND(NOT128):IFBY=0THENPRINTTAB(26);"DEL"; 4380 IFBY=1THENPRINTTAB(26);"SEQ"; 4390 IFBY=2THENPRINTTAB(26);"PRG"; 4400 IFBY=3THENPRINTTAB(26);"USR"; 4410 IFBY=4THENPRINTTAB(26);"REL"; 4420 PRINTTAB(30);DI(1);TAB(35);DI(2) 4430 NEXTC 4440 MB=MB+1:IFMB<>19THEN4050 4450 IFDA$="Y"THENRETURN 4460 GOSUB500:RETURN